package com.work.service.main;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.work.dto.main.OneStockTallySearchDTO;
import com.work.dto.main.TwoStockTallyAppSubmitDTO;
import com.work.dto.main.TwoStockTallyCorrectSubmitDTO;
import com.work.dto.main.TwoStockTallySearchDTO;
import com.work.entity.main.TwoStockTally;
import com.work.vo.main.*;
import org.springblade.core.mp.base.BaseService;

/**
 * 多垛理货接口
 *
 * @author ：dujianyu
 * @since ：Created in 2024/4/2 9:14
 */
public interface ITwoStockTallyService extends BaseService<TwoStockTally> {
    /**
     * app提交
     * @param dto 数据
     * @return boolean
     * @author dujianyu
     * @since 2024/4/2 9:53
     */
    boolean submitTwoStockTally(TwoStockTallyAppSubmitDTO dto);

    /**
     * 分页
     * @param page 分页
     * @param dto 搜索参数
     * @return IPage<TwoStockTallyVO>
     * @author dujianyu
     * @since 2024/4/3 15:16
     */
    IPage<TwoStockTallyVO> selectTsTallyHistoryPage(IPage<TwoStockTallyVO> page, TwoStockTallySearchDTO dto);

    /**
     * 删除理货
     * @param id 主键Id
     * @return boolean
     * @author dujianyu
     * @since 2024/5/11 10:23
     */
    boolean removeTwoStockTally(Long id);

    /**
     *
     * @param page 分页
     * @param dto 搜索条件
     * @return IPage<TwoStockTallyCheckVO>
     * @author dujianyu
     * @since 2024/6/11 15:38
     */
    IPage<TwoStockTallyCheckVO> selectCheckPage(IPage<TwoStockTallyCheckVO> page, TwoStockTallySearchDTO dto);

    /**
     * 检算确认
     * @param id 主键id
     * @return String
     * @author dujianyu
     * @since 2024/6/12 9:34
     */
    String changeIsCheck(String id);

    /**
     * 检算修正
     * @param dto 数据
     * @return boolean
     * @author dujianyu
     * @since 2024/6/12 9:42
     */
    boolean correctPieceTon(TwoStockTallyCorrectSubmitDTO dto);

    /**
     * 解锁分页
     * @param page 分页
     * @param dto 搜索条件
     * @return IPage<TwoStockTallyUnlockVO>
     * @author dujianyu
     * @since 2024/6/18 9:57
     */
    IPage<TwoStockTallyUnlockVO> selectUnlockPage(IPage<TwoStockTallyUnlockVO> page, TwoStockTallySearchDTO dto);

    /**
     * 解锁
     * @param id 主键ID
     * @return String
     * @author dujianyu
     * @since 2024/6/18 10:25
     */
    String changeIsEdit(String id);

    /**
     * 解锁详情
     * @param dto 搜索条件
     * @return TstStockTallyUnlockDetailVO
     * @author dujianyu
     * @since 2024/6/18 11:26
     */
    TwoStockTallyUnlockDetailVO selectTstDetail(TwoStockTallySearchDTO dto);

    /**
     * 船统计检算详情
     * @param dto 搜索条件
     * @return TwoStockTallyShipStatCheckDetail
     * @author dujianyu
     * @since 2024/7/1 13:20
     */
    TwoStockTallyShipStatCheckDetail selectShipStatCheckDetail(TwoStockTallySearchDTO dto);

    /**
     * 工班查询与导出
     * @param page 分页
     * @param dto 搜索条件
     * @return IPage<TwoStockTallySearchExportVO>
     * @author dujianyu
     * @since 2024/7/3 9:00
     */
    IPage<TwoStockTallySearchExportVO> selectTallySearchExportPage(IPage<TwoStockTallySearchExportVO> page, TwoStockTallySearchDTO dto);

    /**
     * 工班查询与导出统计
     * @param dto 搜索条件
     * @return TotalPieceTonVO
     * @author dujianyu
     * @since 2024/7/4 10:29
     */
    TotalPieceTonVO selectTallySearchExportTotal(TwoStockTallySearchDTO dto);

    /**
     * 综合统计转配
     * @param page 分页
     * @param dto 搜索条件
     * @return IPage<TransferStatVO>
     * @author dujianyu
     * @since 2024/7/5 9:06
     */
    IPage<TransferStatVO> selectTransferStatPage(IPage<TransferStatVO> page, TwoStockTallySearchDTO dto);

    /**
     * 综合统计转配合计
     * @param dto 搜索条件
     * @return PieceTonVO
     * @author dujianyu
     * @since 2024/7/5 10:07
     */
    PieceTonVO selectTransferStatTotal(TwoStockTallySearchDTO dto);
}
